Systems and methods for automated document image orientation correction

ABSTRACT

Systems and methods are configured for correcting the orientation of an image data object subject to optical character recognition (OCR) by receiving an original image data object, generating initial machine readable text for the original image data object via OCR, generating an initial quality score for the initial machine readable text via machine-learning models, determining whether the initial quality score satisfies quality criteria, upon determining that the initial quality score does not satisfy the quality criteria, generating a plurality of rotated image data objects each comprising the original image data object rotated to a different rotational position, generating a rotated machine readable text data object for each of the plurality of rotated image data objects and generating a rotated quality score for each of the plurality of rotated machine readable text data objects, and determining that one of the plurality of rotated quality scores satisfies the quality criteria.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.16/935,880, filed Jul. 22, 2020, the contents of which is herebyincorporated by reference herein in its entirety.

BACKGROUND

Medical charts are documents that track a patient's medical history andcare. One method to digitize these records is to scan these documentsusing an optical scanner and convert the image to machine readable textusing an optical character recognition (OCR) technique. However, OCRprocessing accuracy may be significantly diminished by improperlyoriented images as well as other problems associated with incorrectimage creation.

Thus, a need exists for systems and methods for providing high accuracyOCR of imaged documents.

BRIEF SUMMARY

In general, embodiments of the present invention provide methods,apparatuses, systems, computing devices, computing entities, and/or thelike for providing high-quality OCR processing on image data objects.Various embodiments are configured for performing image orientationanalysis based at least in part on machine readable text metadata, andutilizing one or more of an OCR quality processor, a rotation analyzer,and/or an OCR engine.

Various embodiments are directed to a computer-implemented method forcorrecting an orientation of an image data object, thecomputer-implemented method comprising: receiving, by one or moreprocessors, an original image data object; generating, by the one ormore processors applying an optical character recognition (OCR) process,initial machine readable text for the original image data object;generating, by the one or more processors and using one or more machinelearning models, an initial quality score for the initial machinereadable text; determining whether the initial quality score satisfiesone or more quality criteria; responsive to determining that the initialquality score does not satisfy the one or more quality criteria,generating a plurality of rotated image data objects each correspondingto a different rotational position, wherein each of the plurality ofrotated image data objects comprise the original image data objectrotated to a corresponding rotational position; generating, by the oneor more processors, a rotated machine readable text data object for eachof the plurality of rotated image data objects, wherein each of therotated machine readable text data objects are stored in associationwith corresponding rotated image data objects; generating, by the one ormore processors and using one or more machine learning models, a rotatedquality score for each of the rotated machine readable text dataobjects; determining that a first rotated quality score of the rotatedquality scores satisfies the one or more quality criteria, wherein thefirst rotated quality score corresponds to a first rotated machinereadable text data object of the rotated machine readable text dataobjects; and providing the first rotated machine readable text dataobject to a natural language processing (NLP) engine.

In certain embodiments, generating an initial quality score comprises:identifying one or more words within the initial machine readable textbased at least in part on a machine-learning model for identifyingspaces between words; comparing each of the one or more words identifiedwithin the initial machine readable text against words within adictionary retrieved for checking spelling within the initial machinereadable text; generating a spelling error detection rate for theinitial machine readable text; determining the initial quality scorebased at least in part on the spelling error detection rate for theinitial machine readable text. In various embodiments, the methodfurther comprises identifying, within metadata associated with theoriginal image data object, a language associated with the originalimage data object; and retrieving the dictionary based at least in parton the language associated with the original image data object. Incertain embodiments, generating a plurality of rotated image dataobjects comprises: generating a first rotated image data objectcomprising the original image data object rotated to a first rotationalposition; generating a second rotated image data object comprising theoriginal image data object rotated to a second rotational position;generating a third rotated image data object comprising the originalimage data object rotated to a third rotational position; and storingeach of the first rotated image data object, the second rotated imagedata object, and the third rotated image data object in association withthe original image data object.

In various embodiments, generating an initial quality score for theinitial machine readable text comprises: generating text metadatacomprising text summarization metrics for the initial machine readabletext; processing the text metadata using one or more machine learningmodels to generate the initial quality score and associating the initialquality score with the initial machine readable text. In variousembodiments, the text summarization metrics comprise one or more of: acount of words not evaluated within the initial machine readable text; acount of words evaluated within the initial machine readable text; acount of words within the initial machine readable text not found in adictionary; a count of words within the initial machine readable textfound in the dictionary; a count of words within the initial machinereadable text; or a count of space characters within the initial machinereadable text.

Certain embodiments are directed to an apparatus for correcting anorientation of an image data object, the apparatus comprising at leastone processor and at least one memory including program code, the atleast one memory and the program code configured to, with the at leastone processor, cause the apparatus to at least: receive an originalimage data object; generate, at least in part by applying an opticalcharacter recognition (OCR) process, initial machine readable text forthe original image data object; generate, at least in part by using oneor more machine learning models, an initial quality score for theinitial machine readable text; determine whether the initial qualityscore satisfies one or more quality criteria; responsive to determiningthat the initial quality score does not satisfy the one or more qualitycriteria, generate a plurality of rotated image data objects eachcorresponding to a different rotational position, wherein each of theplurality of rotated image data objects comprise the original image dataobject rotated to a corresponding rotational position; generate arotated machine readable text data object for each of the plurality ofrotated image data objects, wherein each of the rotated machine readabletext data objects are stored in association with corresponding rotatedimage data objects; generate, at least in part by using one or moremachine learning models, a rotated quality score for each of the rotatedmachine readable text data objects; determine that a first rotatedquality score of the rotated quality scores satisfies the one or morequality criteria, wherein the first rotated quality score corresponds toa first rotated machine readable text data object of the rotated machinereadable text data objects; and provide the first rotated machinereadable text data object to a natural language processing (NLP) engine.

In certain embodiments, generating an initial quality score comprises:identifying one or more words within the initial machine readable textbased at least in part on a machine-learning model for identifyingspaces between words; comparing each of the one or more words identifiedwithin the initial machine readable text against words within adictionary retrieved for checking spelling within the initial machinereadable text; generating a spelling error detection rate for theinitial machine readable text; determining the initial quality scorebased at least in part on the spelling error detection rate for theinitial machine readable text.

In various embodiments, the at least one memory and the program code isconfigured to, with the at least one processor, cause the apparatus tofurther: identify, within metadata associated with the original imagedata object, a language associated with the original image data object;and retrieve the dictionary based at least in part on the languageassociated with the original image data object. Moreover, in certainembodiments, generating a plurality of rotated image data objectscomprises: generating a first rotated image data object comprising theoriginal image data object rotated to a first rotational position;generating a second rotated image data object comprising the originalimage data object rotated to a second rotational position; generating athird rotated image data object comprising the original image dataobject rotated to a third rotational position; and storing each of thefirst rotated image data object, the second rotated image data object,and the third rotated image data object in association with the originalimage data object. In various embodiments, generating an initial qualityscore for the initial machine readable text comprises: generating textmetadata comprising text summarization metrics for the initial machinereadable text; processing the text metadata using one or more machinelearning models to generate the initial quality score and associatingthe initial quality score with the initial machine readable text. Incertain embodiments, the text summarization metrics comprise one or moreof: a count of words not evaluated within the initial machine readabletext; a count of words evaluated within the initial machine readabletext; a count of words within the initial machine readable text notfound in a dictionary; a count of words within the initial machinereadable text found in the dictionary; a count of words within theinitial machine readable text; or a count of space characters within theinitial machine readable text.

Certain embodiments are directed to a computer program product forcorrecting an orientation of an image data object, the computer programproduct comprising at least one non-transitory computer-readable storagemedium having computer-readable program code portions stored therein,the computer-readable program code portions configured to: receive anoriginal image data object; generate, at least in part by applying anoptical character recognition (OCR) process, initial machine readabletext for the original image data object; generate, at least in partusing one or more machine learning models, an initial quality score forthe initial machine readable text; determine whether the initial qualityscore satisfies one or more quality criteria; responsive to determiningthat the initial quality score does not satisfy the one or more qualitycriteria, generate a plurality of rotated image data objects eachcorresponding to a different rotational position, wherein each of theplurality of rotated image data objects comprise the original image dataobject rotated to a corresponding rotational position; generate arotated machine readable text data object for each of the plurality ofrotated image data objects, wherein each of the rotated machine readabletext data objects are stored in association with corresponding rotatedimage data objects; generate, at least in part by using one or moremachine learning models, a rotated quality score for each of the rotatedmachine readable text data objects; determine that a first rotatedquality score of the rotated quality scores satisfies the one or morequality criteria, wherein the first rotated quality score corresponds toa first rotated machine readable text data object of the rotated machinereadable text data objects; and provide the first rotated machinereadable text data object to a natural language processing (NLP) engine.

In various embodiments, generating an initial quality score comprises:identifying one or more words within the initial machine readable textbased at least in part on a machine-learning model for identifyingspaces between words; comparing each of the one or more words identifiedwithin the initial machine readable text against words within adictionary retrieved for checking spelling within the initial machinereadable text; generating a spelling error detection rate for theinitial machine readable text; determining the initial quality scorebased at least in part on the spelling error detection rate for theinitial machine readable text. In certain embodiments, thecomputer-readable program code portions are further configured to:identifying, within metadata associated with the original image dataobject, a language associated with the original image data object; andretrieving the dictionary based at least in part on the languageassociated with the original image data object.

In various embodiments, generating a plurality of rotated image dataobjects comprises: generating a first rotated image data objectcomprising the original image data object rotated to a first rotationalposition; generating a second rotated image data object comprising theoriginal image data object rotated to a second rotational position;generating a third rotated image data object comprising the originalimage data object rotated to a third rotational position; and storingeach of the first rotated image data object, the second rotated imagedata object, and the third rotated image data object in association withthe original image data object. Moreover, generating an initial qualityscore for the initial machine readable text may comprise: generatingtext metadata comprising text summarization metrics for the initialmachine readable text; processing the text metadata using one or moremachine learning models to generate the initial quality score andassociating the initial quality score with the initial machine readabletext.

In certain embodiments, the text summarization metrics comprise one ormore of: a count of words not evaluated within the initial machinereadable text; a count of words evaluated within the initial machinereadable text; a count of words within the initial machine readable textnot found in the dictionary; a count of words within the initial machinereadable text found in the dictionary; a count of words within theinitial machine readable text; or a count of space characters within theinitial machine readable text.

BRIEF DESCRIPTION OF THE DRAWINGS

Having thus described the invention in general terms, reference will nowbe made to the accompanying drawings, which are not necessarily drawn toscale, and wherein:

FIG. 1 provides an exemplary overview of an architecture in accordancewith certain embodiments.

FIG. 2 provides an example image orientation analysis processing entityin accordance with some embodiments discussed herein.

FIG. 3 provides an example client computing entity in accordance withsome embodiments discussed herein.

FIG. 4 is a flowchart illustrating example processes for performing OCRprocessing, quality determination, and rotational correction of an imagein accordance with certain embodiments.

FIG. 5 is a flowchart illustrating example processes for performing OCRquality processing of machine readable text in accordance with certainembodiments.

FIG. 6 is a flowchart illustrating example processes for performingrotation analysis on images in accordance with certain embodiments.

FIG. 7 is a flowchart illustrating example processes for training one ormore machine learning models and for determining spell-correction errorrates in accordance with certain embodiments.

FIG. 8 illustrates an example output from an OCR processor of an imagein an incorrect orientation.

DETAILED DESCRIPTION

Various embodiments will now be described more fully hereinafter withreference to the accompanying drawings, in which some, but not allembodiments of the inventions are shown. Indeed, the describedconfigurations may be embodied in many different forms and should not beconstrued as limited to the embodiments set forth herein; rather, theseembodiments are provided so that this disclosure will satisfy applicablelegal requirements. The term “or” is used herein in both the alternativeand conjunctive sense, unless otherwise indicated. The terms“illustrative” and “exemplary” are used to be examples with noindication of quality level. Like numbers refer to like elementsthroughout. Moreover, while certain embodiments are described withreference to predictive data analysis, one of ordinary skill in the artwill recognize that the disclosed concepts can be used to perform othertypes of data analysis.

I. Overview

Various embodiments are configured for providing high-accuracy OCRprocessing of imaged documents (and/or other images), at least in partby assessing the quality of OCR output based at least in part on textmetadata of the machine readable text. The assessed quality of OCRoutput may be used to determine a better image orientation for moreaccurate OCR processing in the event the assessed quality of an initialOCR output does not satisfy relevant criteria. Absent this orientationcorrecting process, processing of documents by OCR engines may result inless accurate machine readable text not be conducive to furtherprocessing such as natural language processing. This in turn reduces theoverall operational reliability of systems (e.g., natural languageprocessing (NLP) systems) reliant on machine readable text extractedfrom images, such as document scans, photographs, and/or the like (e.g.medical record storing and tracking). Accordingly, various embodimentsare configured to utilize a series of OCR output quality assessmentstogether with image rotation processes to identify a best-quality OCRoutput corresponding with a particular image rotation. Moreover, variousembodiments may flag non-rotational errors that cause poor OCR outputallowing for further processing before exporting the machine readabletext to other systems.

II. Definitions

The term “medical chart” may refer to a record that contains medicalinformation/data of a patient. It should be understood that a medicalchart is just one of a plurality of documents, text-containing images,and/or the like that may be imaged and converted to machine readabletext via OCR techniques.

The term “image data object” may refer to a data object storing animage, such as an image of a medical chart. The image data object may beembodied as one or more image data files (e.g., having an extension suchas .jpg, .gif, .pdf, .bmp, .tiff, and/or the like) that may be generatedbased at least in part on a document scan, a photograph, and/or thelike.

The term “machine readable text” may refer to text data in a data formatthat can be automatically read and processed by a computer.

The term “machine readable text object” may refer to a data object in adata format that can be automatically read and processed by a computer.Such machine readable text objects may comprise plaintext data files,metadata accompanying an image, and/or the like.

The term “text summarization metrics” may refer to characteristics of ananalyzed grouping of text (e.g., machine readable text within a machinereadable text object) such as the count of words not evaluated, count ofwords evaluated, count of words not found in the dictionary, count ofwords found in the dictionary, total count of words in the document, andtotal count of space/whitespace characters contained within thedocument.

The term “text summarization metrics object” may refer to a data objectstoring text summarization metrics.

The term “text metadata” may refer to a compilation of various textsummarization metrics.

The term “text metadata object” may refer to a data object storing textmetadata.

The terms “optical character recognition,” “OCR,” may refer to asoftware framework configured for processing an image data object toextract one or more features in the form of machine readable text.

The term “optical character recognition engine” may refer to anOCR-capable processor configuration for converting an image into machinereadable text.

The term “OCR quality engine” may refer to a processor configuration fordetermining the quality score of an OCR generated machine readable text.

The term “rotation analyzer engine” may refer to a processorconfiguration for determining the proper image rotation (e.g., operatingtogether with the OCR engine and/or OCR quality engine) for optimizingan OCR output quality score.

The term “spelling error” may refer to an error in the machine readabletext that may be due to incorrect spelling in the image data object.Spelling errors may be determined at least in part by comparingindividual words within machine-readable text to words specificallyidentified within a dictionary as discussed herein to identify matches.If a match is not identified between the analyzed word and words withinthe dictionary, but the word is indicated as a likely misspelling of aword existing within the dictionary, the analyzed word may be flagged asa spelling error.

The term “spelling error detection rate” may refer to the rate at whicherrors in the machine readable text are caused by spelling errors ratherthan other error types (e.g., rotational errors or other errorsidentified as words that do not match words within a dictionary and arenot indicated as likely misspellings of words within the dictionary thatmay be automatically corrected).

The term “quality score” may refer to the inferred error rate of animage data object, such errors may be embodied as spelling errors orother error types. The quality score may be indicative of a percentageof words extracted from an image data object that are not flagged ashaving errors, however it should be understood that the quality scoremay be indicative of other metrics for evaluating quality of analysesperformed for the image data object.

The term “quality threshold” may refer to a user determined level atwhich the quality score is compared to determine if the document is lowor high quality. A quality threshold is just one example of qualitycriteria that may be utilized for assessing a quality score. It shouldbe understood that a quality threshold may refer to a minimum qualityscore for establishing the document as a high quality. Alternatively,the quality threshold may refer to a maximum quality score forestablishing the document as high quality.

The term “high quality” may refer to an image with a quality scoresatisfying the quality criteria.

The term “low quality” may refer to an image with a quality score notsatisfying than the quality criteria.

The term “proper image rotation” may refer to the orientation at whichan image data object has the highest quality score.

The term “non-OCR related error” may refer to an error in the image dataobject that prevents a high-quality processing of the image and is notcaused by the OCR-process.

The term “dictionary” may refer to a collection or list of words thatincludes their correct spelling. A dictionary may be developed and/ormaintained within an OCR engine, a third party dictionary referencedexternal to the OCR engine, and/or the like.

The term “features” may refer to distinctive attributes of an object.

III. Computer Program Products, Methods, and Computing Entities

Embodiments of the present invention may be implemented in various ways,including as computer program products that comprise articles ofmanufacture. Such computer program products may include one or moresoftware components including, for example, software objects, methods,data structures, or the like. A software component may be coded in anyof a variety of programming languages. An illustrative programminglanguage may be a lower-level programming language, such as an assemblylanguage associated with a particular hardware architecture and/oroperating system platform. A software component comprising assemblylanguage instructions may require conversion into executable machinecode by an assembler prior to execution by the hardware architectureand/or platform. Another example programming language may be ahigher-level programming language that may be portable across multiplearchitectures. A software component comprising higher-level programminglanguage instructions may require conversion to an intermediaterepresentation by an interpreter or a compiler prior to execution.

Other examples of programming languages include, but are not limited to,a macro language, a shell or command language, a job control language, ascript language, a database query or search language, and/or a reportwriting language. In one or more example embodiments, a softwarecomponent comprising instructions in one of the foregoing examples ofprogramming languages may be executed directly by an operating system orother software component without having to be first transformed intoanother form. A software component may be stored as a file or other datastorage construct. Software components of a similar type or functionallyrelated may be stored together such as, for example, in a particulardirectory, folder, or library. Software components may be static (e.g.,pre-established or fixed) or dynamic (e.g., created or modified at thetime of execution).

A computer program product may include non-transitory computer-readablestorage medium storing applications, programs, program modules, scripts,source code, program code, object code, byte code, compiled code,interpreted code, machine code, executable instructions, and/or the like(also referred to herein as executable instructions, instructions forexecution, computer program products, program code, and/or similar termsused herein interchangeably). Such non-transitory computer-readablestorage media include all computer-readable media (including volatileand non-volatile media).

In one embodiment, a non-volatile computer-readable storage medium mayinclude a floppy disk, flexible disk, hard disk, solid-state storage(SSS) (e.g., a solid state drive (SSD), solid state card (SSC), solidstate module (SSM), enterprise flash drive, magnetic tape, or any othernon-transitory magnetic medium, and/or the like. A non-volatilecomputer-readable storage medium may also include a punch card, papertape, optical mark sheet (or any other physical medium with patterns ofholes or other optically recognizable indicia), compact disc read onlymemory (CD-ROM), compact disc-rewritable (CD-RW), digital versatile disc(DVD), Blu-ray disc (BD), any other non-transitory optical medium,and/or the like. Such a non-volatile computer-readable storage mediummay also include read-only memory (ROM), programmable read-only memory(PROM), erasable programmable read-only memory (EPROM), electricallyerasable programmable read-only memory (EEPROM), flash memory (e.g.,Serial, NAND, NOR, and/or the like), multimedia memory cards (MMC),secure digital (SD) memory cards, SmartMedia cards, CompactFlash (CF)cards, Memory Sticks, and/or the like. Further, a non-volatilecomputer-readable storage medium may also include conductive-bridgingrandom access memory (CBRAM), phase-change random access memory (PRAM),ferroelectric random-access memory (FeRAM), non-volatile random-accessmemory (NVRAM), magnetoresistive random-access memory (MRAM), resistiverandom-access memory (RRAM), Silicon-Oxide-Nitride-Oxide-Silicon memory(SONOS), floating junction gate random access memory (FJG RAM),Millipede memory, racetrack memory, and/or the like.

In one embodiment, a volatile computer-readable storage medium mayinclude random access memory (RAM), dynamic random access memory (DRAM),static random access memory (SRAM), fast page mode dynamic random accessmemory (FPM DRAM), extended data-out dynamic random access memory (EDODRAM), synchronous dynamic random access memory (SDRAM), double datarate synchronous dynamic random access memory (DDR SDRAM), double datarate type two synchronous dynamic random access memory (DDR2 SDRAM),double data rate type three synchronous dynamic random access memory(DDR3 SDRAM), Rambus dynamic random access memory (RDRAM), TwinTransistor RAM (TTRAM), Thyristor RAM (T-RAM), Zero-capacitor (Z-RAM),Rambus in-line memory module (RIMM), dual in-line memory module (DIMM),single in-line memory module (SIMM), video random access memory (VRAM),cache memory (including various levels), flash memory, register memory,and/or the like. It will be appreciated that where embodiments aredescribed to use a computer-readable storage medium, other types ofcomputer-readable storage media may be substituted for or used inaddition to the computer-readable storage media described above.

As should be appreciated, various embodiments of the present inventionmay also be implemented as methods, apparatuses, systems, computingdevices, computing entities, and/or the like. As such, embodiments ofthe present invention may take the form of an apparatus, system,computing device, computing entity, and/or the like executinginstructions stored on a computer-readable storage medium to performcertain steps or operations. Thus, embodiments of the present inventionmay also take the form of an entirely hardware embodiment, an entirelycomputer program product embodiment, and/or an embodiment that comprisesa combination of computer program products and hardware performingcertain steps or operations.

Embodiments of the present invention are described below with referenceto block diagrams and flowchart illustrations. Thus, it should beunderstood that each block of the block diagrams and flowchartillustrations may be implemented in the form of a computer programproduct, an entirely hardware embodiment, a combination of hardware andcomputer program products, and/or apparatuses, systems, computingdevices, computing entities, and/or the like carrying out instructions,operations, steps, and similar words used interchangeably (e.g., theexecutable instructions, instructions for execution, program code,and/or the like) on a computer-readable storage medium for execution.For example, retrieval, loading, and execution of code may be performedsequentially such that one instruction is retrieved, loaded, andexecuted at a time. In some exemplary embodiments, retrieval, loading,and/or execution may be performed in parallel such that multipleinstructions are retrieved, loaded, and/or executed together. Thus, suchembodiments can produce specifically configured machines performing thesteps or operations specified in the block diagrams and flowchartillustrations. Accordingly, the block diagrams and flowchartillustrations support various combinations of embodiments for performingthe specified instructions, operations, or steps.

IV. Exemplary System Architecture

FIG. 1 is a schematic diagram of an example architecture 100 for imageanalysis. The architecture 100 includes an image analysis system 101configured to at least receive an image from the client computingentities 102, process the image to generate machine readable text,generate text metadata, process the text metadata to generate a qualityscore, and/or perform prediction-based actions based at least in part onthe generated predictive quality score.

In some embodiments, the image analysis system 101 may communicate withat least one of the client computing entities 102 using one or morecommunication networks. Examples of communication networks include anywired or wireless communication network including, for example, a wiredor wireless local area network (LAN), personal area network (PAN),metropolitan area network (MAN), wide area network (WAN), and/or thelike, as well as any hardware, software and/or firmware required toimplement it (such as, e.g., network routers, and/or the like).

The image analysis system 101 may include an image orientation analysisprocessing entity 106 and a storage subsystem 108. The image orientationanalysis processing entity 106 may be configured to perform a variety ofimage orientation predictive analysis operations, such as OCR qualityprocessor operations and rotation analyzer operations.

The image orientation analysis processing entity 106 may include anoptical character recognition engine 111, an OCR quality engine 112, anda rotational analyzer engine 113. Aspects of the optical characterrecognition engine 111, the OCR quality engine 112 and the rotationalanalyzer engine 113 are discussed below with reference to FIGS. 4-8 .

The storage subsystem 108 may be configured to store at least a portionof input data together with data generated by one or more engines of theimage orientation analysis processing entity 106 (e.g. images, machinereadable text, text metadata, quality scores, and/or the like) generatedand/or utilized by the image orientation analysis processing entity 106to generate a higher quality image orientation for OCR processing.

The storage subsystem 108 may include one or more storage units, such asmultiple distributed storage units that are connected through a computernetwork. Moreover, each storage unit in the storage subsystem 108 mayinclude one or more non-volatile storage or memory media including, butnot limited to, hard disks, ROM, PROM, EPROM, EEPROM, flash memory,MMCs, SD memory cards, Memory Sticks, CBRAM, PRAM, FeRAM, NVRAM, MRAM,RRAM, SONOS, FJG RAM, Millipede memory, racetrack memory, and/or thelike.

A. Exemplary Image Orientation Analysis Processing Entity

FIG. 2 provides a schematic of an image orientation analysis processingentity 106 according to one embodiment of the present invention. Ingeneral, the terms computing entity, computer, entity, device, system,and/or similar words used herein interchangeably may refer to, forexample, one or more computers, computing entities, desktops, mobilephones, tablets, phablets, notebooks, laptops, distributed systems,kiosks, input terminals, servers or server networks, blades, gateways,switches, processing devices, processing entities, set-top boxes,relays, routers, network access points, base stations, the like, and/orany combination of devices or entities adapted to perform the functions,operations, and/or processes described herein. Such functions,operations, and/or processes may include, for example, transmitting,receiving, operating on, processing, displaying, storing, determining,creating/generating, monitoring, evaluating, comparing, and/or similarterms used herein interchangeably. In one embodiment, these functions,operations, and/or processes can be performed on data, content,information, and/or similar terms used herein interchangeably.

As indicated, in one embodiment, the image orientation analysisprocessing entity 106 may also include one or more communicationsinterfaces 220 for communicating with various computing entities, suchas by communicating data, content, information, and/or similar termsused herein interchangeably that can be transmitted, received, operatedon, processed, displayed, stored, and/or the like.

As shown in FIG. 2 , in one embodiment, the image orientation analysisprocessing entity 106 may include or be in communication with one ormore processing elements 205 (also referred to as processors, processingcircuitry, and/or similar terms used herein interchangeably) thatcommunicate with other elements within the image orientation analysisprocessing entity 106 via a bus, for example. As will be understood, theprocessing element 205 may be embodied in a number of different ways.

For example, the processing element 205 may be embodied as one or morecomplex programmable logic devices (CPLDs), microprocessors, multi-coreprocessors, coprocessing entities, application-specific instruction-setprocessors (ASIPs), microcontrollers, and/or controllers. Further, theprocessing element 205 may be embodied as one or more other processingdevices or circuitry. The term circuitry may refer to an entirelyhardware embodiment or a combination of hardware and computer programproducts. Thus, the processing element 205 may be embodied as integratedcircuits, application specific integrated circuits (ASICs), fieldprogrammable gate arrays (FPGAs), programmable logic arrays (PLAs),hardware accelerators, other circuitry, and/or the like.

As will therefore be understood, the processing element 205 may beconfigured for a particular use or configured to execute instructionsstored in volatile or non-volatile media or otherwise accessible to theprocessing element 205. As such, whether configured by hardware orcomputer program products, or by a combination thereof, the processingelement 205 may be capable of performing steps or operations accordingto embodiments of the present invention when configured accordingly.

In one embodiment, the image orientation analysis processing entity 106may further include or be in communication with non-volatile media (alsoreferred to as non-volatile storage, memory, memory storage, memorycircuitry and/or similar terms used herein interchangeably). In oneembodiment, the non-volatile storage or memory may include one or morenon-volatile storage or memory media 210 including, but not limited to,hard disks, ROM, PROM, EPROM, EEPROM, flash memory, MMCs, SD memorycards, Memory Sticks, CBRAM, PRAM, FeRAM, NVRAM, MRAM, RRAM, SONOS, FJGRAM, Millipede memory, racetrack memory, and/or the like.

As will be recognized, the non-volatile storage or memory media maystore databases, database instances, database management systems, data,applications, programs, program modules, scripts, source code, objectcode, byte code, compiled code, interpreted code, machine code,executable instructions, and/or the like. The term database, databaseinstance, database management system, and/or similar terms used hereininterchangeably may refer to a collection of records or data that isstored in a computer-readable storage medium using one or more databasemodels, such as a hierarchical database model, network model, relationalmodel, entity—relationship model, object model, document model, semanticmodel, graph model, and/or the like.

In one embodiment, image orientation analysis processing entity 106 mayfurther include or be in communication with volatile media (alsoreferred to as volatile storage, memory, memory storage, memorycircuitry and/or similar terms used herein interchangeably). In oneembodiment, the volatile storage or memory may also include one or morevolatile storage or memory media 215 including, but not limited to, RAM,DRAM, SRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3SDRAM, RDRAM, TTRAM, T-RAM, Z-RAM, RIMM, DIMM, SIMM, VRAM, cache memory,register memory, and/or the like.

As will be recognized, the volatile storage or memory media may be usedto store at least portions of the databases, database instances,database management systems, data, applications, programs, programmodules, scripts, source code, object code, byte code, compiled code,interpreted code, machine code, executable instructions, and/or the likebeing executed by, for example, the processing element 205. Thus, thedatabases, database instances, database management systems, data,applications, programs, program modules, scripts, source code, objectcode, byte code, compiled code, interpreted code, machine code,executable instructions, and/or the like may be used to control certainaspects of the operation of the image orientation analysis processingentity 106 with the assistance of the processing element 205 andoperating system.

As indicated, in one embodiment, the image orientation analysisprocessing entity 106 may also include one or more communicationsinterfaces 220 for communicating with various computing entities, suchas by communicating data, content, information, and/or similar termsused herein interchangeably that can be transmitted, received, operatedon, processed, displayed, stored, and/or the like. Such communicationmay be executed using a wired data transmission protocol, such as fiberdistributed data interface (FDDI), digital subscriber line (DSL),Ethernet, asynchronous transfer mode (ATM), frame relay, data over cableservice interface specification (DOCSIS), or any other wiredtransmission protocol. Similarly, image orientation analysis processingentity 106 may be configured to communicate via wireless clientcommunication networks using any of a variety of protocols, such asgeneral packet radio service (GRPS), Universal Mobile TelecommunicationsSystem (UMTS), Code Division Multiple Access 1900 (CDMA1900), CDMA19001x (1xRTT), Wideband Code Division Multiple Access (WCDMA), GlobalSystem for Mobile Communications (GSM), Enhanced Data rates for GSMEvolution (EDGE), Time Division-Synchronous Code Division MultipleAccess (TD-SCDMA), Long Term Evolution (LTE), Evolved UniversalTerrestrial Radio Access Network (E-UTRAN), Evolution-Data Optimized(EVDO), High Speed Packet Access (HSPA), High-Speed Downlink PacketAccess (HSDPA), IEEE 802.11 (Wi-Fi), Wi-Fi Direct, 802.16 (WiMAX),ultra-wideband (UWB), infrared (IR) protocols, near field communication(NFC) protocols, Wibree, Bluetooth protocols, wireless universal serialbus (USB) protocols, and/or any other wireless protocol.

Although not shown, the image orientation analysis processing entity 106may include or be in communication with one or more input elements, suchas a keyboard input, a mouse input, a touch screen/display input, motioninput, movement input, audio input, pointing device input, joystickinput, keypad input, and/or the like. The image orientation analysisprocessing entity 106 may also include or be in communication with oneor more output elements (not shown), such as audio output, video output,screen/display output, motion output, movement output, and/or the like.

B. Exemplary Client Computing Entity

FIG. 3 provides an illustrative schematic representative of a clientcomputing entity 102 that can be used in conjunction with embodiments ofthe present invention. In general, the terms device, system, computingentity, entity, and/or similar words used herein interchangeably mayrefer to, for example, one or more computers, computing entities,desktops, mobile phones, tablets, phablets, notebooks, laptops,distributed systems, kiosks, input terminals, servers or servernetworks, blades, gateways, switches, processing devices, processingentities, set-top boxes, relays, routers, network access points, basestations, the like, and/or any combination of devices or entitiesadapted to perform the functions, operations, and/or processes describedherein. Client computing entities 102 can be operated by variousparties. As shown in FIG. 3 , the client computing entity 102 caninclude an antenna 312, a transmitter 304 (e.g., radio), a receiver 306(e.g., radio), and a processing element 308 (e.g., CPLDs,microprocessors, multi-core processors, coprocessing entities, ASIPs,microcontrollers, and/or controllers) that provides signals to andreceives signals from the transmitter 304 and receiver 306,correspondingly.

The signals provided to and received from the transmitter 304 and thereceiver 306, correspondingly, may include signaling information/data inaccordance with air interface standards of applicable wireless systems.In this regard, the client computing entity 102 may be capable ofoperating with one or more air interface standards, communicationprotocols, modulation types, and access types. More particularly, theclient computing entity 102 may operate in accordance with any of anumber of wireless communication standards and protocols, such as thosedescribed above with regard to the image orientation analysis processingentity 106. In a particular embodiment, the client computing entity 102may operate in accordance with multiple wireless communication standardsand protocols, such as UMTS, CDMA1900, 1xRTT, WCDMA, GSM, EDGE,TD-SCDMA, LTE, E-UTRAN, EVDO, HSPA, HSDPA, Wi-Fi, Wi-Fi Direct, WiMAX,UWB, IR, NFC, Bluetooth, USB, and/or the like. Similarly, the clientcomputing entity 102 may operate in accordance with multiple wiredcommunication standards and protocols, such as those described abovewith regard to the image orientation analysis processing entity 106 viaa network interface 320.

Via these communication standards and protocols, the client computingentity 102 can communicate with various other entities using conceptssuch as Unstructured Supplementary Service Data (USSD), Short MessageService (SMS), Multimedia Messaging Service (MMS), Dual-ToneMulti-Frequency Signaling (DTMF), and/or Subscriber Identity ModuleDialer (SIM dialer). The client computing entity 102 can also downloadchanges, add-ons, and updates, for instance, to its firmware, software(e.g., including executable instructions, applications, programmodules), and operating system.

According to one embodiment, the client computing entity 102 may includelocation determining aspects, devices, modules, functionalities, and/orsimilar words used herein interchangeably. For example, the clientcomputing entity 102 may include outdoor positioning aspects, such as alocation module adapted to acquire, for example, latitude, longitude,altitude, geocode, course, direction, heading, speed, universal time(UTC), date, and/or various other information/data. In one embodiment,the location module can acquire data, sometimes known as ephemeris data,by identifying the number of satellites in view and the relativepositions of those satellites (e.g., using global positioning systems(GPS)). The satellites may be a variety of different satellites,including Low Earth Orbit (LEO) satellite systems, Department of Defense(DOD) satellite systems, the European Union Galileo positioning systems,the Chinese Compass navigation systems, Indian Regional Navigationalsatellite systems, and/or the like. This data can be collected using avariety of coordinate systems, such as the Decimal Degrees (DD);Degrees, Minutes, Seconds (DMS); Universal Transverse Mercator (UTM);Universal Polar Stereographic (UPS) coordinate systems; and/or the like.Alternatively, the location information/data can be determined bytriangulating the client computing entity's 102 position in connectionwith a variety of other systems, including cellular towers, Wi-Fi accesspoints, and/or the like. Similarly, the client computing entity 102 mayinclude indoor positioning aspects, such as a location module adapted toacquire, for example, latitude, longitude, altitude, geocode, course,direction, heading, speed, time, date, and/or various otherinformation/data. Some of the indoor systems may use various position orlocation technologies including RFID tags, indoor beacons ortransmitters, Wi-Fi access points, cellular towers, nearby computingdevices (e.g., smartphones, laptops) and/or the like. For instance, suchtechnologies may include the iBeacons, Gimbal proximity beacons,Bluetooth Low Energy (BLE) transmitters, NFC transmitters, and/or thelike. These indoor positioning aspects can be used in a variety ofsettings to determine the location of someone or something to withininches or centimeters.

The client computing entity 102 may also comprise a user interface (thatcan include a display 316 coupled to a processing element 308) and/or auser input interface (coupled to a processing element 308). For example,the user interface may be a user application, browser, user interface,and/or similar words used herein interchangeably executing on and/oraccessible via the client computing entity 102 to interact with and/orcause display of information/data from the image orientation analysisprocessing entity 106, as described herein. The user input interface cancomprise any of a number of devices or interfaces allowing the clientcomputing entity 102 to receive data, such as a keypad 318 (hard orsoft), a touch display, voice/speech or motion interfaces, or otherinput device. In embodiments including a keypad 318, the keypad 318 caninclude (or cause display of) the conventional numeric (0-9) and relatedkeys (#, *), and other keys used for operating the client computingentity 102 and may include a full set of alphabetic keys or set of keysthat may be activated to provide a full set of alphanumeric keys. Inaddition to providing input, the user input interface can be used, forexample, to activate or deactivate certain functions, such as screensavers and/or sleep modes.

The client computing entity 102 can also include volatile storage ormemory 322 and/or non-volatile storage or memory 324, which can beembedded and/or may be removable. For example, the non-volatile memorymay be ROM, PROM, EPROM, EEPROM, flash memory, MMCs, SD memory cards,Memory Sticks, CBRAM, PRAM, FeRAM, NVRAM, MRAM, RRAM, SONOS, FJG RAM,Millipede memory, racetrack memory, and/or the like. The volatile memorymay be RAM, DRAM, SRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, DDR2SDRAM, DDR3 SDRAM, RDRAM, TTRAM, T-RAM, Z-RAM, RIMM, DIMM, SIMM, VRAM,cache memory, register memory, and/or the like. The volatile andnon-volatile storage or memory can store databases, database instances,database management systems, data, applications, programs, programmodules, scripts, source code, object code, byte code, compiled code,interpreted code, machine code, executable instructions, and/or the liketo implement the functions of the client computing entity 102. Asindicated, this may include a user application that is resident on theentity or accessible through a browser or other user interface forcommunicating with the image orientation analysis processing entity 106and/or various other computing entities.

In another embodiment, the client computing entity 102 may include oneor more components or functionality that are the same or similar tothose of the image orientation analysis processing entity 106, asdescribed in greater detail above. As will be recognized, thesearchitectures and descriptions are provided for exemplary purposes onlyand are not limiting to the various embodiments.

In various embodiments, the client computing entity 102 may be embodiedas an artificial intelligence (AI) computing entity, such as an AmazonEcho, Amazon Echo Dot, Amazon Show, Google Home, and/or the like.Accordingly, the client computing entity 102 may be configured toprovide and/or receive information/data from a user via an input/outputmechanism, such as a display, a camera, a speaker, a voice-activatedinput, and/or the like. In certain embodiments, an AI computing entitymay comprise one or more predefined and executable program algorithmsstored within an onboard memory storage module, and/or accessible over anetwork. In various embodiments, the AI computing entity may beconfigured to retrieve and/or execute one or more of the predefinedprogram algorithms upon the occurrence of a predefined trigger event.

V. Technical Challenges and Technical Solutions

Embodiments as discussed herein solve various technical challenges,including addressing “rotation error detection” and “error validation”problems associated with automated extraction of textual data from imagedata objects. The “rotation error detection” may impede or preventautomated OCR of certain images if those images are not properlyoriented (e.g., such that the OCR engine is presented with letters intheir proper orientation, thereby enabling the OCR engine toappropriately identify each letter—and to consequently recognize eachword within the image. By identifying the presence, absence, or degreeof rotation error detection based at least in part on data generatedthrough the execution of an OCR process, various embodiments minimizecomputational resource usage associated with extracting textual datafrom a plurality of image data objects, as only a subset of the imagedata objects are subject to inappropriate image rotation that wouldrequire image rotation and multiple OCR-based textual extractionprocesses. By contrast, systems and methods configured for simultaneousor original image orientation analysis concurrent with or prior toinitial OCR processes result in a large computational resourceexpenditure on all image data objects, including those for whichcomputationally expensive rotational image analysis is not necessary. Asinput batches grow larger, processing resource savings increase as thequantity of image data objects not requiring image rotation increases.Certain embodiments enable post-hoc analysis of the OCR output throughanalyzing text metadata, thereby enabling identification of a subset ofimage data objects requiring additional processing, withoutunnecessarily utilizing significant processing resources performingadditional image processing for those images not requiring furtherprocessing. Moreover, “error validation” processes of certainembodiments are configured for automatically identifying OCR processingerrors that result in poor-quality machine readable text due tonon-rotation-based imaging errors (e.g., spelling errors, transcriptionerrors, and/or the like, such as errors that are traditionally onlyidentifiable manually).

As noted above, embodiments as discussed herein provide technicalsolutions to technical problems related to the OCR processing of animage. In particular, the ratio of incorrect words identifiable througha spell check program to words not found in the dictionary can bequickly predicted with 97% correlation using previously generated OCRdata. This enables certain embodiments to infer text summarizationmetrics without performing costly spellcheck processing. Moreover, ahigh ratio of incorrect words that are not recognized by a spell checkprogram may be utilized to identify an improper orientation of theimage, leading to rotational issues with OCR data. Such a ratio may beidentified within generated text summarization metrics. Thus, textsummarization metrics that are contained in text metadata may be used topredict rotational issues (e.g., an incorrect image orientation) withOCR data while avoiding computationally costly processing. Moreover,text metadata may be extracted and analyzed asynchronously, therebyenabling asynchronous identification of rotational issues downstreamfrom OCR processing services. Further, the utilization of text metadataenables differing error types to be automatically distinguished (such asrotational errors, image quality errors, transcription errors, and/orthe like. Embodiments as discussed herein therefore overcome thetechnical problems of rotation error detection and error validation.

VI. Exemplary System Operations

FIG. 4 is a flowchart diagram of an example process 400 for performingimage orientation analysis. Via the various steps/operations of theprocess 400, the image orientation analysis processing entity 106 canefficiently and effectively perform image orientation analyses usingtext metadata that is generated using outputs of an OCR processor, whichin turn eliminates the need for performing resource-intensive machinevision diagnostics to perform orientation analysis.

The process 400 begins at step/operation 402 when the image orientationanalysis processing entity 106 receives an original image data objectthat contains text to be converted into machine readable text. Thisoriginal image data object may comprise one or more images, each imagebeing embodied as at least a portion of an image data file. For example,the original image data may be an image of various types of documentssuch as a medical chart. In some embodiments, an imaging device (e.g.,an optical scanner, a camera, and/or the like) or other computing entitywill provide the image data object in a digital format (e.g. JPEG, PNG,RAW, PDF, and/or the like). In some embodiments, the image orientationanalysis processing entity 106 receives a batch of original image dataobjects (e.g., a plurality of original image data objects) forprocessing. It should be understood that the image orientation analysisprocessing entity 106 may receive original image data objects in a batchfashion as discussed above (e.g., periodically, at defined timeintervals, and/or the like). In other embodiments, the image orientationanalysis processing entity 106 may receive original image data objectscontinuously and/or in real-time, for example, as the imaging devicegenerates the original image data objects.

In some embodiments, as illustrated at step/operation 404, an OCR engine111 of the image orientation analysis processing entity 106 generatesmachine readable text from the original image data object. In someembodiments, processes for generating the machine readable text maycomprise preprocessing the image to increase the accuracy of resultsgenerated by the OCR engine 111. Preprocessing may comprise processesfor increasing image contrast, generating a black and white version ofthe image of the original image data object, removing the alpha channelof the image of the original image data object (e.g., by applying animage mask and/or by converting the original image data object to a JPEGformat), altering the settings of the OCR engine 111 to match thelanguage and/or type of document (e.g., by utilizing metadata stored inassociation with the original image data object indicative of a languageassociated with the original image data object and retrieving anappropriate language-specific dictionary (e.g., stored in memory) forusage in identifying words within the OCR-generated data, by utilizingmetadata stored in association with the original image data object toidentify a document type associated with the original image data objectand retrieving an appropriate document type-specific dictionary (e.g.,stored in memory) for usage in identifying words within theOCR-generated data, and/or the like) and setting the correct pagesegmentation mode of the OCR engine 111. Once the preprocessing has beencompleted, outlines of text components (e.g., defining a bounded areawithin which text for analysis is located) may be compiled forprocessing groups before being segmented into text lines and regions(e.g., the text line and/or regions may identify individual boundedareas corresponding to individual lines within multi-line regions oftext). Next, the OCR engine 111 may segment the grouped text into words(e.g., by identifying white spaces between/within identified text thatare identified as being gaps between individual words, such as byutilizing white space-specific size thresholds, white space-specificsize percentages compared to adjacent identified letters, and/or thelike) before attempting to recognize the individual characters in eachword. Those words may be recognized and identified as tokens that may beutilized for further data evaluation. Certain characters identifiedwithin early portions of an image may be recognized by an adaptiveclassifier and utilized to facilitate identification of similarcharacters later in the document (e.g., such that characters of the samefont may be easily recognized). The characters may then be compiled intoone machine readable text object. This machine readable text object maycomprise a compilation of individual characters in a language (e.g. themodern English language). In some embodiments, this OCR engine 111 maybe an engine such as a Tesseract OCR engine, although other OCR enginesmay be utilized in certain embodiments, such as an Azure CognitiveServices (ACS) OCR engine executing within a cloud-based computingenvironment, and/or the like. The machine readable text can be stored ina machine readable text object. In certain embodiments, the OCR processmay be an iterative process, with each iteration utilizing increasinglymore processing resources so as to minimize the amount of processingresources expended to recognize relatively easy-to-recognize words(identified during an initial pass), while reserving additionalprocessing resources for obscured or otherwise difficult-to-recognizewords (identified during a second or subsequent pass, which may benefitfrom additional data provided to the adaptive classifier to moreaccurately identify characters during subsequent passes). Moreover,certain embodiments may utilize additional processing resources to checkfor special character types, such as small-caps, such as by analyzingcharacter heights.

At step/operation 406, the OCR quality engine 112 generates a qualityscore for the machine readable text, for example, via a machine-learningbased scoring model, via a rule-based scoring model, and/or the like.The quality score may be provided as a percentage (e.g., indicative ofwhether errors within the machine readable text are attributable solelyto an incorrect image orientation, or to some other non-orientationbased errors; indicative of the percentage of detected errorsattributable solely to an incorrect image orientation, and/or the like).In certain embodiments, the quality score may be established utilizing arule-based scoring model configured to assign/adjust a quality scorebased at least in part on detected aspects of the metadata associatedwith an image. In other embodiments, the quality score may be providedas an integer, or any other format enabling direct comparison betweenquality scores. Quality score criteria as discussed herein may beprovided with corresponding configurations (e.g., as a minimumpercentage, as a minimum integer, as a maximum percentage, as a maximuminteger, and/or the like) based on the configurations of the qualityscore. In some embodiments, step/operation 406 may be performed inaccordance with the process depicted in FIG. 5 . The process depicted inFIG. 5 begins at step/operation 502 when the OCR quality engine 112receives the machine readable text of the image data object.

At step/operation 502, the OCR quality engine 112 receives machinereadable text associated with an original image data object. Asdiscussed above, such machine readable text may be generated via OCRprocessing methodologies as discussed herein.

At step/operation 504, the OCR quality engine 112 generates textsummarization metrics from the machine readable text. As an example,these metrics may include a count of words not evaluated. These wordsmay not have been evaluated by the OCR engine 111 due to the word beingtoo short, being a numeric character, being incorrectly positionedrelative to other words (e.g., being within a header or footer of animage document, being within an inset image within the imaged document,and/or the like), and/or the like. As another example, these metrics mayinclude a count of words not found in the dictionary utilized for OCRimage analysis (as discussed above, the dictionary may be selected tofacilitate evaluation of a particular document using an appropriatelanguage and/or document-type specific word set). As an example, thewords from the machine readable text may be evaluated against apredefined dictionary of English words with supplemental terms accordingto a determined document type (e.g., a particular medical record type, aparticular lab report type, and/or the like). Further examples ofpotential text summarization metrics may include metrics such as countof words evaluated, count of words found in the dictionary, count ofwords not found in the dictionary, total count of words in the document,and total count of space/whitespace characters contained in thedocument. Further, certain embodiments may be configured to predict theratio of incorrect words with a spell check program to words not foundin the dictionary as an additional text summarization metric. The OCRquality engine 112 compiles these text summarization metrics into a textmetadata object 506.

In some embodiments, step/operation 510 may be performed in accordancewith a machine-learning model trained in accordance with various processsteps/operations depicted in FIG. 7 . The process depicted in FIG. 7begins at step/operation 702 when, in some embodiments, a machinelearning engine receives a plurality of image data objects.

At step/operation 704 an OCR engine 111 generates machine readable textobjects.

At step/operation 706, the image analysis system 101 generates textsummarization metrics from the machine readable text. As an example,these metrics may include count of words not evaluated. These words maynot have been evaluated by the OCR engine 111 due to the word being tooshort, being a numeric character, or due to positional issues such astext being in a portion of the image data object not subject to imageanalysis (e.g., a header/footer, an inset image, and/or the like). Asanother example, these metrics may include the count of words not foundin the dictionary. In some embodiments, the words from the machinereadable text may be evaluated against a predefined dictionary ofEnglish words with supplemental terms according to a document type forwhich the analysis is performed. Further examples of potential textsummarization metrics may include metrics such as count of wordsevaluated, count of words found in the dictionary, count of words notfound in the dictionary, total count of words in the document, totalcount of space/whitespace characters contained in the document, and/orthe like. Further, some embodiments of the present invention may beconfigured to predict the ratio of incorrect words with a spell checkprogram to words not found in the dictionary as an additional textsummarization metric. The OCR quality engine 112 compiles these textsummarization metrics into a text metadata object to be associated withthe machine-readable text data object and/or the image data object. Incertain embodiments, the OCR quality engine 112 may provide an outputthat may be provided to a client computing entity 102 comprising theimage data object and/or comprising data indicative of an automaticallydetected error rate. The output may be provided to enable a user tomanually check the results of the OCR quality engine 112, and the outputmay be provided as a part of a user interface configured to receive userinput indicative of additional corrections, comments, and/or the likeprovided by the user. Such user input may be utilized as a part oftraining data (together with the image data object) as discussed hereinfor training the OCR quality engine 112.

At step/operation 708, the image analysis system 101 generates aspelling error detection rate. In certain embodiments, the generation ofa spelling error detection rate may be executed through processing themachine readable text object in a spelling error detection program, suchas by comparing words identified within the machine readable text objectto words stored in the dictionary to identify words not matching wordswithin the dictionary. This program may then determine the number ofwords not found in the dictionary that could not be fixed throughspelling correction methods. For example, spelling correction methodsmay comprise correlating common misspellings with likely intended words,as indicated within the dictionary, such as correlating “teh” with alikely intended spelling of “the.” Words indicated as not having alikely intended spelling, such as “rewsxdgggtes,” may be indicated asincorrect words without a likely intended correct spelling, which may beindicative of non-spelling related errors.

At step/operation 710, the image analysis system 101 compares the chartmetadata objects to the spelling error detection rates to look forpatterns in the text summarization metrics and spelling error detectionrates.

At step/operation 712, a machine-learning model is configured togenerate inferences of machine readable text quality based on textmetadata. In some embodiments, this is based on the assumption that alow-quality OCR result has a large portion of words that are not in thedictionary and are not merely spelling errors that may be fixed by aspelling error detection program. In some embodiments, this model isbuilt using a machine learning algorithm utilizing the text metadataobject as the input and a quality score as the output. As just oneexample, the machine-learning model may be implemented as an ensemblemodel comprising a random forest model and a boosted tree modelcollectively configured to determine the quality score. Such anembodiment is configured to utilize the text metadata to generate aprediction of an error rate ratio, and the generated prediction of theerror rate ratio may be utilized as the quality score. The predictederror rate ratio of certain embodiments is indicative of a ratio betweenpredicted number of words that cannot be automatically corrected by aspell correction program (non-spelling errors) and the number of wordsnot found in the dictionary (total errors). Accordingly, a higherpredicted error rate is indicative of a higher quantity of misspelledwords, which may be indicative of an incorrect document orientation. Itshould be understood that other machine-learning based models may beutilized in other embodiments.

At step/operation 408, the image orientation analysis processing entity106 determines if the quality score generated by the OCR quality engine112 satisfies one or more quality criteria, such as a score threshold.In some embodiments, if the quality score does satisfy the qualitythreshold then the machine readable text and original image may beexported to a natural language processing (NLP) engine for additionalprocessing, such as to identify context or substance of the data (e.g.,for categorizing documents, for extracting specific words, for routingthe documents based on text content, and/or the like). In someembodiments, if the quality score does not satisfy the quality thresholdthe original image may be exported to a rotational analyzer engine 113to determine the correct orientation for the original image data object410.

The rotational analyzer engine 113 may operate in accordance with theexample process of FIG. 6 . At step/operation 602, the rotationalanalyzer engine 113 receives the original image data object, and rotatesthe original image data object and creates a plurality (e.g., three) newimage data objects each corresponding to a different rotational position(such that each new image data object comprises the original image dataobject rotated to a corresponding rotational position). As an example,the rotational analyzer engine 113 rotates the original image dataobject 90° to generate a first image data object at a first rotationalposition, 180° to generate a second image data object at a secondrotational position, and 270° to generate a third image data object at athird rotational position and generates and stores new image dataobjects reflective of the image data object rotated at each of theserotational positions. It should be understood that other/additionalrotational positions may be utilized in certain embodiments to generatemore/fewer image data objects for further analysis.

At step/operation 606, the OCR engine 111 generates machine readabletext for each of the new image data objects, in a manner as discussedabove in reference to step/operation 404 of FIG. 4 .

At step/operation 608, the OCR quality engine 112 generates a qualityscore for each of the machine readable text data objects, in a manner asdiscussed above in reference to step/operation 406 of FIG. 4 (and theprocess illustrated in FIG. 5 ).

At step/operation 610, an optimal quality score (e.g., the highestquality score) from among the new image data objects is selected. Theoptimal quality score may be indicative of a proper image orientationfor further analysis, as the OCR processes executed for the image dataobject having the optimal quality score (e.g., the image data objectgenerated based at least in part on a rotation of the original imagedata object) determines that the fewest misspelled words (or words forwhich there is not a likely intended corresponding word) are includedwithin the text data object generated for the image data object. The newimage data object corresponding to the rotational position having theoptimal quality score may be further checked to ensure that the newimage data object identified as having the optimal quality score isfurther characterized by a decrease in the number of errors associatedwith the OCR-generated text of the new image data, as compared with theoriginal image data object.

At step/operation 612, the image analysis system 101 determines if thequality score selected at step/operation 610 satisfies one or morequality criteria. In some embodiments, this criteria may be defined asthe quality score being at least a defined score level higher than thequality score for the original image data object (e.g., at least 1.5×the original quality score, at least 2× the original quality score,and/or the like). In some embodiments, if the quality score does satisfythe quality criteria then the machine readable text data object andselected new image data object may be exported to an NLP engine forfurther processing. In some embodiments, if the quality score does notsatisfy the quality criteria the original image data object is flaggedas having a non-OCR error 614. In certain embodiments, an alert may begenerated for a user to manually review the original image data object.As just one example, the image orientation analysis processing entity106 may be configured to periodically (e.g., at defined intervals)generate a manual review data object comprising a plurality of originalimage data objects for which manual review is determined to be necessaryto extract textual data therefrom.

In some embodiments, the generated machine readable text data objects(an example of which is shown in FIG. 8 ), the selected image dataobject generated at least in part by rotating the original image dataobject, the original image data object, and/or metadata stored therewithmay be populated into a labeled dataset used to train a machine learningmodel to detect correct page orientation based on originally generatedmachine readable text. By placing these data objects into the labeleddata set to be utilized as training data, the image orientation analysisprocessing entity 106 may be configured to detect to a particularpreferred image orientation. As just one example, the image orientationanalysis processing entity 106 may be configured to utilize dataindicative of known letter shapes and orientations (e.g., such data mayindicate that an “M” has a shape of “Σ” when rotated 90 degrees and ashape of “W” when rotated 180 degrees) so as to compare relativeorientations of documents represented within the image data objects. Itshould be understood that other features within an image may be utilizedas references for determining an image orientation within each rotatedimage data object). Utilizing the training data to refine the machinelearning models to predict a preferred image orientation for particularimages may further reduce the computational processing resourcesutilized for automatically generating OCR-based machine readable textfor particular images determined to be improperly rotated within theoriginal image data object. For example, certain embodiments may beconfigured to utilize a machine-learning based model to identify one ormore predicted image orientations, so as to reduce the total number ofrotated image data objects generated upon initiation of a process forgenerating one or more rotated image data objects for identifying anappropriate orientation of the image data object for automaticallygenerating machine readable text data objects via OCR techniques to beassociated with the original image data object. It should be furtherunderstood that in certain embodiments, a separate set of training datamay be similarly processed to generate training data. Overall, thetraining data may comprise supervised training data, with classificationmetadata associated with individual training data entries indicatingwhether the resulting OCR generated text data object is considered a lowquality OCR result or a high quality OCR result. Moreover, individualtraining data entries may be associated with metadata indicative of aquality score, which itself may be indicative of a predicted error rate,such as a spelling error detection rate indicative of a percentage ofwords identified within the text data object that are identified asincorrectly spelled and capable of correction (e.g., by matching withcorrectly spelled words existing within a dictionary) relative to thenumber of incorrectly spelled words not capable of automated correctionutilized during OCR. Data indicative of the error rate, quality score,and/or classification data may be utilized to establish quality criteriathat may be implemented by a machine learning model to facilitateidentification of text based data objects (and their corresponding imagedata objects) having a sufficiently high quality OCR result to warrantfurther analysis (e.g., via natural language processing (NLP) systems asdiscussed herein).

Moreover, the labeled dataset discussed above, including the highestquality score new image data object may be further utilized to detectnon-rotational OCR issues based on text metadata. In certainembodiments, the training data set may be further supplemented withmanually generated data (e.g., data generated based at least in part onuser input received from a client computing entity 102 during a manualreview of a particular image data object), for example, identifying oneor more non-rotational based OCR issues via manual tagging. It should beunderstood that non-rotational based OCR issues may be identified viaany of a variety of mechanisms, such as those automated mechanismsdiscussed herein. By utilizing the training data set to train one ormore machine learning models to identify non-rotational based OCRissues, the machine learning model may be configured to more preciselyand accurately identify those non-rotational based OCR issues, and/or tocorrelate remedial actions that may be provided to address theidentified non-rotational based OCR issues. As an example of suchremedial actions, one or more incorrectly spelled words may be manuallycorrelated to an intended spelling, and data indicative of thiscorrelation may be stored and later utilized for addressing incorrectlyspelled words in later provided documents. It should be understood thatany of a variety of remedial actions may be identified and/or providedin certain embodiments, thereby enabling the image analysis system 101to apply such remedial actions based on machine-learning modelapplication to identify appropriate non-rotational OCR issues foraddressing via the one or more remedial actions.

VII. Conclusion

Many modifications and other embodiments will come to mind to oneskilled in the art to which this disclosure pertains having the benefitof the teachings presented in the foregoing descriptions and theassociated drawings. Therefore, it is to be understood that thedisclosure is not to be limited to the specific embodiments disclosedand that modifications and other embodiments are intended to be includedwithin the scope of the appended claims. Although specific terms areemployed herein, they are used in a generic and descriptive sense onlyand not for purposes of limitation.

1-18. (canceled)
 19. A computer-implemented method comprising:providing, by one or more processors, a first rotated machine readabletext data object of a plurality of rotated machine readable text dataobjects to a natural language processing (NLP) engine, wherein the firstrotated machine readable text data object is generated by: (a)generating, by applying an optical character recognition (OCR) process,initial machine readable text for an original image data object, (b)generating, using one or more machine learning models, an initialquality score for the initial machine readable text, wherein the initialquality score indicates a probability that an error in the initialmachine readable text is attributable to an image orientation associatedwith the original image data object, (c) responsive to a determinationthat the initial quality score does not satisfy one or more qualitycriteria, generating a plurality of rotated image data objects, wherein(i) each of the plurality of rotated image data objects corresponds to adifferent rotational position and (ii) each of the plurality of rotatedimage data objects comprises the original image data object rotated to acorresponding rotational position, (d) generating the plurality ofrotated machine readable text data objects for the plurality of rotatedimage data objects, (e) generating, using one or more machine learningmodels, a rotated quality score for each of the rotated machine readabletext data objects, and (f) determining that a first rotated qualityscore of the rotated quality scores satisfies the one or more qualitycriteria, wherein (i) the first rotated quality score corresponds to thefirst rotated machine readable text data object and (ii) determiningthat the first rotated quality scores satisfies the one or more qualitycriteria indicates that the first rotated machine readable text dataobject is to be provided to the NLP engine.
 20. The computer-implementedmethod of claim 19, wherein generating the initial quality scorecomprises: identifying one or more words within the initial machinereadable text based at least in part on a machine-learning model foridentifying spaces between words; comparing each of the one or morewords identified within the initial machine readable text against wordswithin a dictionary retrieved for checking spelling within the initialmachine readable text; generating a spelling error detection rate forthe initial machine readable text; and determining the initial qualityscore based at least in part on the spelling error detection rate forthe initial machine readable text.
 21. The computer-implemented methodof claim 20, further comprising: identifying, within metadata associatedwith the original image data object, a language associated with theoriginal image data object; and retrieving the dictionary based at leastin part on the language associated with the original image data object.22. The computer-implemented method of claim 19, wherein generating theplurality of rotated image data objects comprises: generating a firstrotated image data object comprising the original image data objectrotated to a first rotational position; generating a second rotatedimage data object comprising the original image data object rotated to asecond rotational position; generating a third rotated image data objectcomprising the original image data object rotated to a third rotationalposition; and storing each of the first rotated image data object, thesecond rotated image data object, and the third rotated image dataobject in association with the original image data object.
 23. Thecomputer-implemented method of claim 19, wherein generating the initialquality score for the initial machine readable text comprises:generating text metadata comprising text summarization metrics for theinitial machine readable text; and processing the text metadata usingone or more machine learning models to generate the initial qualityscore and associating the initial quality score with the initial machinereadable text.
 24. The computer-implemented method of claim 23, whereinthe text summarization metrics comprise at least one of: a count ofwords not evaluated within the initial machine readable text, a count ofwords evaluated within the initial machine readable text, a count ofwords within the initial machine readable text not found in adictionary, a count of words within the initial machine readable textfound in the dictionary, a count of words within the initial machinereadable text, or a count of space characters within the initial machinereadable text.
 25. A computing apparatus comprising memory and one ormore processors communicatively coupled to the memory, the one or moreprocessors configured to: provide a first rotated machine readable textdata object of a plurality of rotated machine readable text data objectsto a natural language processing (NLP) engine, wherein the first rotatedmachine readable text data object is generated by: (a) generating, byapplying an optical character recognition (OCR) process, initial machinereadable text for an original image data object, (b) generating, usingone or more machine learning models, an initial quality score for theinitial machine readable text, wherein the initial quality scoreindicates a probability that an error in the initial machine readabletext is attributable to an image orientation associated with theoriginal image data object, (c) responsive to a determination that theinitial quality score does not satisfy one or more quality criteria,generating a plurality of rotated image data objects, wherein (i) eachof the plurality of rotated image data objects corresponds to adifferent rotational position and (ii) each of the plurality of rotatedimage data objects comprises the original image data object rotated to acorresponding rotational position, (d) generating the plurality ofrotated machine readable text data objects for the plurality of rotatedimage data objects, (e) generating, using one or more machine learningmodels, a rotated quality score for each of the rotated machine readabletext data objects, and (f) determining that a first rotated qualityscore of the rotated quality scores satisfies the one or more qualitycriteria, wherein (i) the first rotated quality score corresponds to thefirst rotated machine readable text data object and (ii) determiningthat the first rotated quality scores satisfies the one or more qualitycriteria indicates that the first rotated machine readable text dataobject is to be provided to the NLP engine.
 26. The computing apparatusof claim 25, wherein generating the initial quality score comprises:identifying one or more words within the initial machine readable textbased at least in part on a machine-learning model for identifyingspaces between words; comparing each of the one or more words identifiedwithin the initial machine readable text against words within adictionary retrieved for checking spelling within the initial machinereadable text; generating a spelling error detection rate for theinitial machine readable text; and determining the initial quality scorebased at least in part on the spelling error detection rate for theinitial machine readable text.
 27. The computing apparatus of claim 26,wherein the one or more processors are further configured to: identify,within metadata associated with the original image data object, alanguage associated with the original image data object; and retrievethe dictionary based at least in part on the language associated withthe original image data object.
 28. The computing apparatus of claim 25,wherein generating a plurality of rotated image data objects comprises:generating a first rotated image data object comprising the originalimage data object rotated to a first rotational position; generating asecond rotated image data object comprising the original image dataobject rotated to a second rotational position; generating a thirdrotated image data object comprising the original image data objectrotated to a third rotational position; and storing each of the firstrotated image data object, the second rotated image data object, and thethird rotated image data object in association with the original imagedata object.
 29. The computing apparatus of claim 25, wherein generatingan initial quality score for the initial machine readable textcomprises: generating text metadata comprising text summarizationmetrics for the initial machine readable text; and processing the textmetadata using one or more machine learning models to generate theinitial quality score and associating the initial quality score with theinitial machine readable text.
 30. The computing apparatus of claim 29,wherein the text summarization metrics comprise at least one of: a countof words not evaluated within the initial machine readable text, a countof words evaluated within the initial machine readable text, a count ofwords within the initial machine readable text not found in adictionary, a count of words within the initial machine readable textfound in the dictionary, a count of words within the initial machinereadable text, or a count of space characters within the initial machinereadable text.
 31. One or more non-transitory computer-readable storagemedia including instructions that, when executed by one or moreprocessors, cause the one or more processors to: provide a first rotatedmachine readable text data object of a plurality of rotated machinereadable text data objects to a natural language processing (NLP)engine, wherein the first rotated machine readable text data object isgenerated by: (a) generating, by applying an optical characterrecognition (OCR) process, initial machine readable text for an originalimage data object, (b) generating, using one or more machine learningmodels, an initial quality score for the initial machine readable text,wherein the initial quality score indicates a probability that an errorin the initial machine readable text is attributable to an imageorientation associated with the original image data object, (c)responsive to a determination that the initial quality score does notsatisfy one or more quality criteria, generating a plurality of rotatedimage data objects, wherein (i) each of the plurality of rotated imagedata objects corresponds to a different rotational position and (ii)each of the plurality of rotated image data objects comprises theoriginal image data object rotated to a corresponding rotationalposition, (d) generating the plurality of rotated machine readable textdata objects for the plurality of rotated image data objects, (e)generating, using one or more machine learning models, a rotated qualityscore for each of the rotated machine readable text data objects, and(f) determining that a first rotated quality score of the rotatedquality scores satisfies the one or more quality criteria, wherein (i)the first rotated quality score corresponds to the first rotated machinereadable text data object and (ii) determining that the first rotatedquality scores satisfies the one or more quality criteria indicates thatthe first rotated machine readable text data object is to be provided tothe NLP engine.
 32. The one or more non-transitory computer-readablestorage media of claim 31, wherein generating the initial quality scorecomprises: identifying one or more words within the initial machinereadable text based at least in part on a machine-learning model foridentifying spaces between words; comparing each of the one or morewords identified within the initial machine readable text against wordswithin a dictionary retrieved for checking spelling within the initialmachine readable text; generating a spelling error detection rate forthe initial machine readable text; and determining the initial qualityscore based at least in part on the spelling error detection rate forthe initial machine readable text.
 33. The one or more non-transitorycomputer-readable storage media of claim 32, wherein the instructionsfurther cause the one or more processors to: identify, within metadataassociated with the original image data object, a language associatedwith the original image data object; and retrieve the dictionary basedat least in part on the language associated with the original image dataobject.
 34. The one or more non-transitory computer-readable storagemedia of claim 31, wherein generating the plurality of rotated imagedata objects comprises: generating a first rotated image data objectcomprising the original image data object rotated to a first rotationalposition; generating a second rotated image data object comprising theoriginal image data object rotated to a second rotational position;generating a third rotated image data object comprising the originalimage data object rotated to a third rotational position; and storingeach of the first rotated image data object, the second rotated imagedata object, and the third rotated image data object in association withthe original image data object.
 35. The one or more non-transitorycomputer-readable storage media of claim 31, wherein generating theinitial quality score for the initial machine readable text comprises:generating text metadata comprising text summarization metrics for theinitial machine readable text; and processing the text metadata usingone or more machine learning models to generate the initial qualityscore and associating the initial quality score with the initial machinereadable text.
 36. The one or more non-transitory computer-readablestorage media of claim 35, wherein the text summarization metricscomprise at least one of: a count of words not evaluated within theinitial machine readable text, a count of words evaluated within theinitial machine readable text, a count of words within the initialmachine readable text not found in a dictionary, a count of words withinthe initial machine readable text found in the dictionary, a count ofwords within the initial machine readable text, or a count of spacecharacters within the initial machine readable text.